Bandwidth constraints of conventional broadcast network structures limit the ability to effectively deliver digital video. For example, standard dial-up connections over copper telephone wire, which connect most residential consumers to a broadcast network, are incapable of efficiently delivering the massive amounts of information required for full-screen streaming video. Even broadband cable and digital subscriber lines face challenges in meeting the demands of streaming video.
To illustrate the challenge, a broadcast video may have 640 lines of horizontal resolution, and 480 vertical lines of resolution for a total of 307,200 pixels. The colors of each pixel may be represented as a 3 character (byte) number (24 bit) having a Red, Green, and Blue (or YUV) value ranging from 0–255, for 16,777,216 (2563) possible colors. Thus, it takes 640×480×3=921,600 distinct characters to produce 307,200 distinct pixels for 1 image on a screen. Multiplying the number of distinct characters by the average number of images shown per second to produce a video (29.97 images per second for NTSC video, and 24 for film) yields 921,600×24=22,118,400 characters per second for film, and 921,600×29.97=˜27,620,352 characters per second for NTSC video. Converting the characters to bits, with 8 bits to each character (byte), drives the number up to 176,947,200 bits per second for film and 220,962,816 for NTSC video. Thus, even under ideal conditions, a 100 Megabit Ethernet network would not be able to transmit the data at the required rate. Given these realities, video data is typically compressed before transmission.
The Motion Picture Experts Group (MPEG) has embraced various well-known video encoding standards or processes, including MPEG-1, MPEG-2, and MPEG-4, which utilize similarities between successive image frames, referred to as temporal or inter-frame correlation, to provide inter-frame compression in which pixel-based representations of image frames are converted to motion representations. Similarities within image frames, referred to as spatial or intra-frame correlation, are also used to provide intra-frame compression in which the motion representations within an image frame are further compressed. The basic approach divides the image into blocks and then individually transforms each block. Compression is realized by quantizing transform coefficients.
Such encoding techniques are calculation-intensive and include a high probability for error introduction, particularly during quantization steps of the encoding process. Especially at high compression ratios, block-based MPEG encoding leads to noticeable blocking artifacts, i.e., artificial discontinuities that appear between the boundaries of blocks. During decompression, a decoder reverses the encoding process, but the encoded errors remain. These propagated errors in the decoded video image are commonly referred to as artifacts, which are responsible for undesirable video image effects such as “mosaic” effect, distortion, mosquito noise, ringing noise and the like.
Some errors may derive from original source video. For example, the video may include undesired shifts in color or brightness for the same pixels representative of the same image between successive frames. Such shifts may be captured in the encoding process and propagated in the decoded data. This type of error is generally referred to as a standing block error herein.
To reduce such undesirable video image effects introduced during quantization, some filtering techniques have emerged. They typically entail averaging, interpolating or extrapolating between temporally and spatially adjacent pixel values to provide blending or smoothing. Many of these techniques address only one or a few types of errors. Additionally, these techniques tend to take a global approach, adjusting all data that falls within determined thresholds. Such indiscriminate processing often results in undesirable changes and unnecessary computations, making them unsuitable for real-time applications. Furthermore, these techniques do not emphasize computational efficiency, making them unsuitable for processing the massive amounts of data required for real-time application on commercial off-the-shelf computing equipment used by consumers today.